package com.wsoft.hr.pm.vo.member.template;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

/**
 * @Author z001
 * @Date 2025/2/26 08:06
 */
@Data
public class MemberTemplateTargetHisVO {

    @Schema(description = "id")
    private Long id;

    @Schema(description = "排序")
    private Integer sort;

    @Schema(description = "模版流程id-前端不用管")
    private Long templateScopeId;

    @Schema(description = "模板指标id")
    private Long memberTemplateTargetId;

    @Schema(description = "指标得分")
    private BigDecimal score;

    @Schema(description = "指标表id")
    private Long targetId;

    @Schema(description = "指标编码")
    private String targetCode;

    @Schema(description = "指标名称")
    @NotBlank(message = "指标名称不能为空")
    private String targetName;

    @Schema(description = "指标类型(数据字典)")
    private String targetType;

    @Schema(description = "加分/减分 值")
    private Long targetTypeValue;

    @Schema(description = "指标级别(数据字典)")
    private String targetLevel;

    @Schema(description = "上级指标")
    private Long pTargetId;

    @Schema(description = "指标分组")
    private Long groupId;

    @Schema(description = "考核标准")
    private String standard;

    @Schema(description = "权重")
    private BigDecimal weight;

    @Schema(description = "目标值")
    private BigDecimal purposeValue;

    @Schema(description = "量化指标单位")
    private String unit;

    @Schema(description = "是否公式自动评分(是否量化)")
    private Integer isFormula;

    @Schema(description = "公式类型")
    private String formulaType;

    @Schema(description = "评分公式")
    private String formulaValue;

    @Schema(description = "是否结果值录入")
    private Integer isResultInput;

    @Schema(description = "结果值录入类型")
    private String resultInputMemberType;

    @Schema(description = "结果值录入值")
    private String resultInputMemberValue;

    @Schema(description = "是否指定评分人")
    private Integer isResultScore;

    @Schema(description = "评分人录入类型")
    private String resultScoreMemberType;

    @Schema(description = "评分人录入值")
    private String resultScoreMemberValue;

    @Schema(description = "指标说明")
    private String remark;

    @Schema(description = "是否关键指标")
    private Integer isKey;

    @Schema(description = "能否编辑权重")
    private Boolean updateWeight;

    @Schema(description = "能否编辑标准")
    private Boolean updateStandard;

    @Schema(description = "能否编辑职群分类")
    private Boolean updateGroupId;

    @Schema(description = "能否编辑上级指标")
    private Boolean updateParTargetId;

    @Schema(description = "能否编辑指标说明")
    private Boolean updateRemark;

    @Schema(description = "当前登录人能否修改")
    private Boolean curModified;

    @Schema(description = "结果值")
    private BigDecimal resultValue;

}
